Problem
Three Palindromes
Description
Can we divided a given string into three nonempty palindromes?
Input
First line contains a single integer which denotes the number of test cases.
For each test case , there is an single line contains a string which only consist of lowercase English letters.
Output
For each case, output the Yes
or No
in a single line.
Sample Input
1 | 2 |
Sample Output
1 | Yes |
标签:Manacher
Translation
给出字符串,判断是否能被分为三段回文串。
Solution
看到回文串,可知本题大概和Manacher
有关。
在Manacher
中,我们有一个数组,记录从第i位向两边拓展,最长回文串的半径是多少。注意到本题有一个特殊的数据——,而三段中,只要能确定任意两段,另一段就能确定。而这三段中肯定有两段是覆盖到串首或串尾的。因而我们可以用是否等于来确定位置是否能成为第一个段的中心点,如法炮制可求出第三段。这时我们暴力枚举第一段和第三段,这样确定第二段后,找到此段中心,可通过确定第二段是否是回文串。
Code
1 |
|